package com.gopay.common.cps.manager.bank;

import java.util.List;

import com.gopay.common.domain.bank.BankOrder;
import com.gopay.common.domain.bis.BisBankBcdlOrder;

/**
 * 银行流水查询Manager
 * 
 * @BankOrderQueryManager.java
 * @author yaobo
 * @2013-3-19 下午02:18:25 www.gopay.com.cn Inc.All rights reserved.
 */
public interface BankOrderQueryManager {

    /**
     * 获取可用银行流水
     * 
     * @param gopayOrderId
     *            国付宝订单号
     * @return
     */
    public BankOrder getEnable(String gopayOrderId);

    /**
     * 获取对单记录
     * 
     * @param orderStatus
     *            当前状态
     * @param count
     *            对单次数
     * @param pageIndex
     *            当前页数
     * @param pageSize
     *            每页记录数
     * @return
     */
    public List<BankOrder> getCheckOrder(String orderStatus, int count, int pageIndex, int pageSize);
    
    public BisBankBcdlOrder getBankBcdlOrderById(String orderId);
    public List<BankOrder> getCheckBcdlOrder(String bank,String orderStatus, int pageIndex, int pageSize);
    
    public int getCheckBcdlOrderCount(String orderStatus,String bank);
    public List<BankOrder> getCheckOrderByBank(String orderStatus, int pageIndex, int pageSize,String bankCode);
    public int getCheckOrderCountByBank(String orderStatus,String bankCode);
    /**
     * 获取对单记录
     * 
     * @param orderStatus
     *            当前状态
     * @param count
     *            对单次数
     * @param pageIndex
     *            当前页数
     * @param pageSize
     *            每页记录数
     * @return
     */
    public List<BankOrder> getCheckBcdlOrder(String orderStatus, int count, int pageIndex, int pageSize);

    /**
     * 获取对单总记录数
     * 
     * @param orderStatus
     *            当前状态
     * @param count
     *            对单次数
     * @return
     */
    public int getCheckOrderCount(String orderStatus, int count);

    /**
     * 获取对单总记录数
     * 
     * @param orderStatus
     *            当前状态
     * @param count
     *            对单次数
     * @return
     */
    public int getCheckBcdlOrderCount(String orderStatus, int count);

    /**
     * 获取对单记录
     * 
     * @param orderId
     *            订单号
     * @return
     */
    public BankOrder getCheckOrderByOutOrderId(String orderId);
    
    /**
     * 获取对单记录 add by lilili 20160905 退款对账
     * 
     * @param orderId
     *            订单号
     * @return
     */
    public BankOrder getCheckOrderByGopayOrderId(String orderId);
}
